[GtkComboBoxText] Add checks for id-column/entry-text-column >= 0
authorMilan Bouchet-Valat <nalimilan@club.fr>
Sat, 11 Dec 2010 14:12:47 +0000 (15:12 +0100)
committerMilan Bouchet-Valat <nalimilan@club.fr>
Sat, 11 Dec 2010 18:10:51 +0000 (19:10 +0100)
If the GtkComboBoxText doesn't have id-column or entry-text-column
set for some reason (value -1), better warn and return. Else, unrelated
assertions fail, and warnings from gtk_tree_model_get_column_type()
are printed, which are not really obvious.

https://bugzilla.gnome.org/show_bug.cgi?id=637018

gtk/gtkcomboboxtext.c

index c7b82d1063f9c712ebb74d374dd053f04beb2c1c..4e67c6c1c1b29e367794ea597a6b04ddc1da9595 100644 (file)
@@ -265,6 +265,7 @@ gtk_combo_box_text_insert (GtkComboBoxText *combo_box,
   store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box)));
   g_return_if_fail (GTK_IS_LIST_STORE (store));
   text_column = gtk_combo_box_get_entry_text_column (GTK_COMBO_BOX (combo_box));
+  g_return_if_fail (text_column >= 0);
   column_type = gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), text_column);
   g_return_if_fail (column_type == G_TYPE_STRING);
 
@@ -276,6 +277,7 @@ gtk_combo_box_text_insert (GtkComboBoxText *combo_box,
       gint id_column;
 
       id_column = gtk_combo_box_get_id_column (GTK_COMBO_BOX (combo_box));
+      g_return_if_fail (id_column >= 0);
       column_type = gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), id_column);
       g_return_if_fail (column_type == G_TYPE_STRING);
 
@@ -359,6 +361,7 @@ gtk_combo_box_text_get_active_text (GtkComboBoxText *combo_box)
       model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box));
       g_return_val_if_fail (GTK_IS_LIST_STORE (model), NULL);
       text_column = gtk_combo_box_get_entry_text_column (GTK_COMBO_BOX (combo_box));
+      g_return_val_if_fail (text_column >= 0, NULL);
       column_type = gtk_tree_model_get_column_type (model, text_column);
       g_return_val_if_fail (column_type == G_TYPE_STRING, NULL);
       gtk_tree_model_get (model, &iter, text_column, &text, -1);